Skip to content
导航栏

根据模型生成数据库表

比如你在 hello_world 目录下创建一个新的模型book

models/book.mod.yao

jsonc
{
  "name": "Book",
  "table": {
    "name": "book" //这个模型在数据库中关联的表名是`book`。
  },
  "columns": [
    {
      "name": "id",
      "label": "ID",
      "type": "ID"
    },
    {
      "name": "title",
      "label": "Title",
      "type": "string",
      "length": 256,
      "index": true,
      "nullable": true
    },
    {
      "name": "author",
      "label": "Author",
      "type": "string",
      "length": 256,
      "index": true,
      "nullable": true
    },
    {
      "name": "publisher",
      "label": "Publisher",
      "type": "string",
      "length": 256,
      "index": true,
      "nullable": true
    }
  ]
}

模型保存后,需要执行一个 yao 命令,把模型转换成数据库中的表。打开控制台,执行以下的命令。

sh
# mysql
yao migrate -n book

# sqlite,需要加上--reset,
yao migrate -n book --reset

提示:reset 的作用是删除整个数据库表后再重新创建,不要在生产环境执行,会导致数据丢失。

成功后控制台会输出以下的内容。

sh
更新表结构 model: book (book)   SUCCESS

上面命令的作用是把 Yao 模型定义转换成数据库表结构。如果模型对应的数据库表已经存在就更新,如果不存在创建新表。

后面如果对模型文档有变更,也需要手动执行命令才会把模型更新到数据库。

总结

Yao 命令也是 Yao 开发中的重要组成部分。